//#define _CRT_SECURE_NO_WARNINGS 1
//#include<iostream>
//
//using namespace std;
//
//class Clock
//{
//private:
//    int hour, minute, second;
//public:
//    Clock(int h, int m, int s) :hour(h), minute(m), second(s) {}
//
//    Clock operator --(int)
//    {
//        Clock old = *this;
//        if (second - 1 < 0)
//        {
//            second = 59;
//            if (minute - 1 < 0)
//            {
//                minute = 59;
//                if (hour - 1 < 0) 
//                    hour = 11;
//                else 
//                    hour--;
//            }
//            else 
//                minute--;
//        }
//        else 
//            second--;
//        return old;
//    }
//
//    Clock operator ++()
//    {
//        if (second + 1 > 59) 
//        {
//            second = (second + 1) % 60;
//            if (minute + 1 > 59) 
//            {
//                minute = (minute + 1) % 60;
//                if (hour + 1 > 11) 
//                    hour = (hour + 1) % 12;
//                else 
//                    hour++;
//            }
//            else 
//                minute++;
//        }
//        else 
//            second++;
//        return *this;
//    }
//    void print() 
//    { 
//        cout << hour << ":" << minute << ":" << second << endl; 
//    }
//};
//
//int main()
//{
//    int t, h, m, s, test;
//    cin >> h >> m >> s;
//    Clock my(h, m, s);
//    cin >> t;
//    while (t--)
//    {
//        cin >> test;
//        if (test > 0)
//        {
//            for (int i = 0; i < test; i++)
//            {
//                ++my;
//            }
//            my.print();
//        }
//        else if (test < 0)
//        {
//            test = -test;
//            for (int i = 0; i < test; i++)
//            {
//                my--;
//
//            }
//            my.print();
//        }
//    }
//    return 0;
//}


#include<iostream>
using namespace std;
class A
{
public:
	virtual void func(int val = 1) { cout << "A->" << val << endl; }
	virtual void test() { func(); }
};
class B :public A
{
public:
	void func(int val = 0) { cout << "B->" << val << endl; }
};
int main()
{
	B* p = new B;
	p->test();
	return 0;
}

